CasperJS is an open source navigation scripting & testing utility
written in Javascript for the PhantomJS WebKit headless browser and
SlimerJS (Gecko). It eases the process of defining a full navigation
scenario and provides useful high-level functions, methods & syntactic
sugar for doing common tasks such as:

    defining & ordering browsing navigation steps
    filling & submitting forms
    clicking & following links
    capturing screenshots of a page (or part of it)
    testing remote DOM
    logging events
    downloading resources, including binary ones
    writing functional test suites, saving results as JUnit XML
    scraping Web contents
